package org.wzh.spring.di.demov;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;

/**
 * Spring 一直支持将属性定义到外部的属性的文件中,并使用占位符值将其插入到Spring bean中.
 * 在Spring装配中,占位符的形式为使用 ${...} 包装的属性名称.
 * 如果我们依赖于组件扫描和自动装配来创建和初始化应用组件的话,那么久没有指定占位符的配置文件或类了.
 * 在这种情况下,我们可以使用@Value注解,它的使用方式与@Autowired注解非常相似.
 * 
 * @author MicroCat
 *
 * 为了使用占位符,我们必须要配置一个PropertyPlaceholderConfigurer bean或
 * PropertySourcesPlaceholderConfigurer bean.从Spring 3.1开始,推荐使用
 * 使用后者,因为它能够基于Spring Environment及其属性源来解析占位符.
 */
@Configuration
@ComponentScan
@PropertySource("classpath:org/wzh/spring/di/demot/app.properties")
public class Config {
	
	@Bean
	public static PropertySourcesPlaceholderConfigurer placeholderConfigurer() {
		return new PropertySourcesPlaceholderConfigurer();
	}

}
